package com.xiao.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.xiao.domain.ResponseResult;
import com.xiao.domain.dto.AddMenuDto;
import com.xiao.domain.dto.MenuListDto;
import com.xiao.domain.pojo.SysMenu;
import com.xiao.domain.vo.MenuListVO;
import com.xiao.domain.vo.MenuTreeSelectVo;
import com.xiao.domain.vo.RoleMenuTreeByIdVo;

import java.util.List;

// 菜单权限 业务接口
public interface SysMenuService extends IService<SysMenu> {

    List<String> selectPermsByUserId(Long userId);
    // 根据用户ID 获取 所拥有的菜单权限内容，以树的形式
    List<SysMenu> selectRouterMenuTreeByUserId(Long userId);

    // 获取所有的菜单
    ResponseResult<MenuListVO> menuAllList(MenuListDto menuListDto);

    // 新增菜单
    ResponseResult addMenu(AddMenuDto addMenuDto);

    // 根据菜单 ID 删除菜单
    ResponseResult delMenuById(Integer menuId);

    // 根据菜单 ID 查询菜单
    ResponseResult<MenuListVO> selectMenuById(Integer menuId);
    // 保存修改
    ResponseResult saveUpdate(MenuListDto menuListDto);

    // 获取所有菜单，以树的形式
    ResponseResult<List<MenuTreeSelectVo>> getAllMenuByTree();

    // 根据角色ID 查询，返回: 1.该id 下的权限，以树的形式展示，2.该id 下的菜单列表
    ResponseResult<RoleMenuTreeByIdVo>  getRoleMenuTreeByID(Long id);

}
